package com.qdlc.p2p.dal.dao;

import com.qdlc.p2p.dal.common.dao.BaseDao;
import com.qdlc.p2p.dal.common.model.jpa.QueryParam;
import com.qdlc.p2p.dal.dto.UserLoginExt;

/**
 * @author xx
 * @version 2.0
 * @since 2014年1月8日
 */
public interface UserLoginExtDao extends BaseDao<UserLoginExt> {

    /**
     * 根据用户名获取用户ID
     *
     * @param username
     * @return
     * @throws Exception
     */
    long getUserIdByUserName(String username) throws Exception;

    /**
     * 统计注册数量
     *
     * @return
     */
    int count(QueryParam param);

    /**
     * 根据用户名计数
     *
     * @param username
     * @return
     */
    int countByUserName(String username);

    /**
     * 更新用户名
     *
     * @param userId   用户ID
     * @param afrUserName 修改前用户名
     * @param preUserName 修改后用户名
     * @return
     */
    void modifyUsername(long userId, String afrUserName, String preUserName);

    /**
     * 删除用户名
     *
     * @param userId   用户ID
     * @param userName 删除用户名
     * @return
     */
    void deleteUsername(long userId, String userName);

    /**
     * 通过用户名获得User
     *
     * @param userName
     * @return
     */
    UserLoginExt getUserByUserName(String userName);

}
